package safe;

/**
 * synchronized的使用
 * synchronized 的本质是修改了Object对象中的'对象头'里的一个标记
 * synchronized 也叫监视器锁(monitor lock)
 */

public class Demo3 {
    volatile public int count;

    //第一种写法:直接加
    synchronized public void increase() {

    }

    //第二种写法:写在里面,针对this对象加锁
    public void increase1() {
        synchronized (this){

        }
    }

    //第三种写法:对类方法使用
    synchronized public static void func() {
    }
    //这是写在里面的方式
    public static void func1(){
        synchronized (Demo3.class){

        }
    }
}
